/**
 * 
 */
package com.fashop.dao.impl;

import java.util.List;

import javax.annotation.Resource;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.springframework.stereotype.Service;

import com.fashop.dao.ProductoDao;
import com.fashop.jpa.Local;
import com.fashop.jpa.Producto;

/**
 * @author Alan Dávila
 * e-mail ustargab@gmail.com
 * date 15/01/2014 22:58:42
 */
@Service("productoDaoImpl")
public class ProductoDaoImpl implements ProductoDao {

	@Resource(name = "sessionFactory")
    private SessionFactory factoria;
	/* (non-Javadoc)
	 * @see com.fashop.dao.ProductoDao#listadoEdadSexo(java.lang.Integer, java.lang.String)
	 */
	@SuppressWarnings("unchecked")
	public List<Producto> listadoEdadSexo(final Integer edad, final String sexo) {
		Session sesion = null;
		List<Producto> productos = null;
		try {
			sesion = factoria.openSession();
			productos = sesion.createQuery("from Producto where edad = ? and sexo = ?")
					.setInteger(0, edad)
					.setString(1, sexo)
					.list();
			
		} catch (Exception e) {
			productos = null;
			sesion = null;
		}
		finally{
			if(sesion!=null){
				sesion.close();
			}
		}
		return productos;
	}
	@SuppressWarnings("unchecked")
	public List<Local> ListadoProductoLocales(Long idproducto) {
		Session sesion		=	null;
		List<Local> locales	=	null;
		try{
			sesion=factoria.openSession();
			locales = sesion.createSQLQuery("select * from Local where empresa_idempresa = (select empresa_idempresa"+
											"  from Local where idlocal = (select local_idlocal	 from producto "+
											" where idproducto = ?))")
						.setLong(0, idproducto)
						.list();
			sesion.close();
		}
		catch(Exception e){
			locales=null;
		}
		finally{
			if(sesion!=null){
				sesion.close();
			}
		}
		return locales;
	}
	
	/* (non-Javadoc)
	 * @see com.fashop.dao.ProductoDao#crear(com.fashop.jpa.Producto)
	 */
	public Producto crear(Producto producto) {
		// TODO Auto-generated method stub
		return null;
	}

	/* (non-Javadoc)
	 * @see com.fashop.dao.ProductoDao#actualizar(com.fashop.jpa.Producto)
	 */
	public Producto actualizar(Producto producto) {
		// TODO Auto-generated method stub
		return null;
	}

	/* (non-Javadoc)
	 * @see com.fashop.dao.ProductoDao#eliminar(com.fashop.jpa.Producto)
	 */
	public Producto eliminar(Producto producto) {
		// TODO Auto-generated method stub
		return null;
	}

	/* (non-Javadoc)
	 * @see com.fashop.dao.ProductoDao#detalle(java.lang.Long)
	 */
	public Producto detalle(Long idproducto) {
		// TODO Auto-generated method stub
		return null;
	}


	

}
